Blockchain in IoT and Beyond: Case Studies …

129

The following list of steps is followed by Drone Dx and one Drone already in the

Network D, which functions as a Trust Anchor:

1.

Drone Dx, which has received a mark of approval from ABC, pings the Network

D to find the IP of a Trust Anchor and then pings the Trust Anchor signaling it

wants to initiate the onboarding process.

2.

The Drone acting as the Trust Anchor now creates a DID Record in the Wallet

that it will use for securely communicating with Drone Dx and then builds an

NYM request to the ledger for recording.

3.

The Trust Anchor initiates a connection request to the Drone Dx sending the DID

along with a cryptographical challenge for it to solve. For ease of understanding,

we will assume that the challenge is a Nonce of “A123F234” (hexadecimal

sequence), which Drone Dx needs to include in its reply back to the Trust

Anchor. This Nonce can be used only once.

4.

Drone Dx accepts the requests. It then creates its wallet and creates a DID and its

respective Verification Key, which it will use for communication with the Trust

Anchor Drone. In the connection response, Drone Dx includes the approval from

ABC, DID for Trust Anchor which it had made, the Nonce “A123F234”.

5.

Drone Dx then queries the Ledger for verkey of the DID that was sent to it by the

Trust Anchor Drone (recall the Network D Ledger is public and permissioned).

Since DIDs are pairwise unique, this DID can only be used between Drone Dx

and the Trust Anchor inside the Network D.

6.

The connection response is now encrypted anonymously (Indy provides a

crypto.anon_crypt API for this). The Trust Anchor inside the Network can use

its private key to decrypt this response and can validate its integrity. Drone Dx

sends this response.

7.

Trust Anchor Drone inside the Network receives this response. It decrypts the

response by using the crypto.anon_decrypt API provided by Indy and validates it

bycheckingtheapprovalfromABC(whichshouldmatchwithitsownapproval),

the Nonce from the response.

8.

The Trust Anchor now sends the DID received from Drone Dx to the Ledger

as an NYM Transaction. While it is sent by the Trust Anchor, ownership of it

belongs to Drone Dx. This creates a trusted connection between the two.

This completes the first stage of the process. In the next stage of the onboarding

process, Drone Dx uses the record of its DID with the Trust Anchor Drone to create

a DID for itself stating its identity. This kind of DID is termed as Verinym. This DID

is sent back to the Trust Anchor who again commits it to the ledger. This particular

communication between the two is encrypted using the Sender and Receiver’s private

and verification keys, respectively, using crypto.auth_crypt API from Indy. This is

reversible at the receiver’s end. The Receiver decrypts it using the crypto.auth_crypt

API. This completes the whole process. Drone Dx is now a part of Network D.